#ifdef UTIL_PLATFORM_LINUX
#include "lang/String.h"
namespace yzrilyzr_lang{
#include <cstdlib>
#include <clocale>
#include <cstring>

	bool String::is_local_encoding_utf8(){
//		// ���LANG��������
//		const char * lang=std::getenv("LANG");
//		if(lang != nullptr){
//			std::string lang_str(lang);
//			// ���ұ��벿��(��zh_CN.UTF-8)
//			u_index dot_pos=lang_str.find_last_of('.');
//			if(dot_pos != std::string::npos){
//				std::string encoding=lang_str.substr(dot_pos + 1);
//				// ������ܵĴ�Сд�ͱ���
//				for(char & c : encoding){
//					c=toupper(c);
//				}
//				return encoding.find("UTF-8") != std::string::npos ||
//					encoding.find("UTF8") != std::string::npos;
//			}
//		}
//
//		// ��鵱ǰlocale����
//		const char * locale=std::setlocale(LC_CTYPE, nullptr);
//		if(locale != nullptr){
//			std::string locale_str(locale);
//			u_index dot_pos=locale_str.find_last_of('.');
//			if(dot_pos != std::string::npos){
//				std::string encoding=locale_str.substr(dot_pos + 1);
//				for(char & c : encoding){
//					c=toupper(c);
//				}
//				return encoding.find("UTF-8") != std::string::npos ||
//					encoding.find("UTF8") != std::string::npos;
//			}
//		}

		// �ִ�UnixϵͳĬ��ͨ����UTF-8
		return true;
	}
	const std::string String::local_to_utf8(const char * ptr, u_index len)const{
//		if(len == 0) return "";
//
//		try{
//		// ʹ���Զ���ת����
//			std::wstring_convert<my_codecvt_byname> conv(
//				new my_codecvt_byname(""));
//			std::wstring wstr=conv.from_bytes(ptr, ptr + len);
//
//			std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_conv;
//			return utf8_conv.to_bytes(wstr);
//		} catch(...){
//			return "";
//		}
return ptr;
	}
	const std::string String::utf8_to_local(const std::string & utf8_str)const{
//		if(utf8_str.empty()) return "";
//		try{
//			std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_conv;
//			std::wstring wstr=utf8_conv.from_bytes(utf8_str);
//
//			// ʹ���Զ���ת����
//			std::wstring_convert<my_codecvt_byname> local_conv(
//				new my_codecvt_byname(""));
//			return local_conv.to_bytes(wstr);
//		} catch(...){
//			return "";
//		}
return utf8_str;
	}
}
#endif // UNIX